Закрыть окно         Список других документов ПЭВМ "Агат"

.дс
.шп+8
5.7 ЯЗЫК ПРОГРАММИРОВАНИЯ.
.шп-8

Этот режим предназначен для написания программ ориентированных на выдачу сложных выходных форм. Используемый при этом язык - язык программирования (ЯП) высокого уровня, похожий на "БЕЙСИК" и является интерпретатором.
В режиме существует свое меню:

   ЗАГРУЗИТЬ ПРОГРАММУ
   ЗАПИСАТЬ ПРОГРАММУ
   РЕДАКТИРОВАТЬ ПРОГРАММУ

.дс
.шп+8
5.7.1 ЗАГРУЗИТЬ ПРОГРАММУ.
.шп-8

Если у Вас ранее была написана программа и она хранится на диске в этом режиме можно ее загрузить. Для этого установите курсор на режим и нажмите клавишу '
'. И на запрос "ВВЕДИТЕ ИМЯ", наберите имя программы и нажмите клавишу '
'. В память машины загрузится текст программы. Она хранится на диске в виде текстового файла и доступна из любых программных средств позволяющих обрабатывать текстовые файлы.

.дс
.шп+8
5.7.2 ЗАПИСАТЬ ПРОГРАММУ
.шп-8

После написания программы, для многократного ее использования ее нужно сохранить на диске. Установите курсор на режим: "ЗАПИСАТЬ ПРОГРАММУ" и нажмите клавишу '
'. А затем, на запрос "ВВЕДИТЕ ИМЯ", наберите имя под которым Ваша программа будет хранится на диске и нажмите '
'.

.дс
.шп+8
5.7.3. РЕДАКТИРОВАТЬ ПРОГРАММУ
.шп-8

Здесь осуществляется непосредственный набор текста программы.
Клавиша "F3" - приводит в действие проверку правильности набора текста программы на синтаксические ошибки (ТРАНСЛЯЦИЯ). При обнаружении ошибки на нижней строке выдается соответствующее сообщение и адрес в тексте, где обнаружена ошибка.
Нажав клавишу "=" система осуществляет сначала трансляцию текста программы и если нет синтаксических ошибок происходит запуск программы на выполнение.
Помните, что вывод информации из программы осуществляется на экран размером до 128 позиций в строке и, что этот экран можно сдвигать, используя клавиши со стрелками ВЛЕВО и ВПРАВО, а клавиша "ПРОБЕЛ" приостанавливает работу программы. Клавиша "9" - прекращает выполнение программы и возвращает Вас в меню форматного вывода. Если программа в процессе своей работы дошла до логического конца, тогда система ждет нажатия любой клавиши, после чего происходит возврат в редактирование программы. Для выхода из редактирования программы нажмите клавишу "9". Помните, если Вы вышли из редактирования программы не отранслировав ее, а только набрав текст, при новом входе в редактор Ваш набор нового текста может не сохранится. Для сохранения текста его можно записать на диск.

.дс
.шп+8
5.7.4. ОПИСАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ.
.шп-8

Основные отличием данного языка от языка программирования "БЕЙСИК" является отсутствие номеров строк и существование меток у операторов, наличие новых типов данных.
Операторы в языке отделяются друг от друга знаком ":" (двоеточие). Для лучшего чтения программы можно пользоваться знаком '
', который переводит строку. Знак '
' можно ставить только после завершения оператора. Для внесения комментариев в программу в языке предусмотрен оператор "REM". Он не влияет на выполнения программы и имеет формат:
  REM "XX"
XX-любой текст неограниченой длины, заключенный в кавычки.
Длина идентификатора переменной и длина метки не должны превышать двух знаков. Количество переменных в одной программе не может быть больше 100. Количество меток тоже не более 100. После метки обязательно ставится знак ":".
В программе могут быть  использованы пять типов переменных и они обозначаются своими специальными знаками:
.лв
    A  - вещественное число;
    B% - целое число;
    C¤ - текст;
    D# - дата;
    E& - перечень
.ов
В языке могут быть использованы массивы, но только одномерной длины. Заранее описывать массивы не требуется. Индексы при указании массива берутся в скобки. Например, A¤(I) - текстовая пременная с индексом "I". В качестве индексов могут быть использованы только вещественные или целые числа, как в виде переменных, так и виде констант. Индексом не может быть выражение.
Константы чисел могут быть не более 14 знаков мантиссы. Если, при вводе целого числа, указана десятичная точка, тогда все цифры стоящие после точки игнорируются. Константы типа "ТЕКСТ" и "ПЕРЕЧЕНЬ" должны быть взяты в кавычки. Например, А&(1)="СПАРТАК". Внутри кавычек у константы типа "ПЕРЕЧЕНЬ" можно ставить как перечень, так и любой текст.
Если в программе используются поля из записи БД, тогда это поле обозначется следующим образом. Первой буквой, говорящей что переменная берется из поля записи, должна быть буква "P". Затем, ставится буква отражающая номер страници, где находится поле,а дальше номер поля по порядку на данной странице. Таким образом, чтобы взять поле находящееся на второй странице и пятое по счету на ней, нужно записать - "PB5".

.дс
.шп+8
5.7.5. ОПЕРАТОРЫ ОТОБРАЖЕНИЯ ИНФОРМАЦИИ НА ЭКРАН
.шп-8

.лв
ТЕХТ0  - Включить вывод на цветной экран размером 32х32.
ТЕХТ1  - Включить вывод на черно-белый экран размером 64х32.
HOME   - Очистить экран от инфорации.
BUM    - Включить вывод информации на печать.
WKU    - Выключить вывод информации на печать.
HTAB X - Установить позицию в строке для вывода.
VTAB X - Установить номер строки для вывода.
     Х - вещественное или целое число и не может быть выражением.
? - Оператор вывода на экран. После оператора "?" могут стоять переменные или константы любых типов, отделенные друг от друга запятой или точкой. Запятая говорит, что следующая за ней информация будет выводится на начало новой строки. А точка показывает, что строчку переводить не требутся и вывод должен быть с последней текущей позиции.
RIBBON X - Управление цветом вывода информации. Х - переменная или константа, содержащая цифру от 0 до 7, которая указывает цвет.

.дс
.шп+8
5.7.6. ОПЕРАТОРЫ ВВОДА ИНФОРМАЦИИ.
.шп-8

INPUT A¤,B - Этот оператор позволяет ввести в переменную указанную в операторе информацию, соответствующую его типу. Через запятую в операторе можно указать для ввода несколько переменных. После слова "INPUT" можно указать в кавычках текст, который будет выводится перед вводом переменных. При вводе переменой на экране отображается курсор, показывающий на позицию вводимой перемменой. Конец ввода переменной осуществляется по нажатию клавиши '
'. Например: INPUT "введите дату:" D#. На экране появится:
  ВВЕДИТЕ ДАТУ:
После знака ":" появится кусор, с которого Вы можете вводить информацию.
GET A¤ - Этот оператор позволяет ввести только один символ и его значение поместить в текстовую переменную А¤. Этот оператор не ждет нажатия клавиши '
'.
GET В% - Предназначен для получения кода символа введенного с клавиатуры. Значение кода помещается в переменную В%, только в целом формате. Например:
код знака  равен 153;
код знака  равен 154;
код знака  равен 149;
код знака  равен 136
  Оператор присвоения обозначается знаком "=" (равно). Например:
  A=12.356; 
  B¤="ДИНАМО";
  C#(2)=13.7.90;
  D¤=B¤
Это означает, что перемнной "А" присваивается число 12.356, текстовой переменной B¤ слово "ДИНАМО", второму элементу массива C# дата 13.7.90, а переменной D¤ значение переменной B¤, означающее слово "ДИНАМО". Если берется переменная которой, ранее не было присвоено ни какого значения это значит, что для текста и перечня переменная имеет пустое значение равное "". Для вещественного или целого числа такая переменная равна нулю, а переменной типа "дата" равна "0.0.0". 
 Арифметические операции возможные в языке :
.лв
   +  - сложение;
   -  - вычитание;
   *  - умножение;
   /  - деление
.ов
Порядок выполнения операций - последовательный, несмотря на правила арифметики. Чтобы задать правильный порядок действий пользуйтесь скобками. Например, A=12+(3*10).
Для округления вещественного числа пользуйтесь оператором "OKR". Его формат:
   OKR X A
X - число, означающее до скольких знаков после запятой нужно округлить перенную A. Если значение X равно 0, это показывает,что переменная округляется до целого.

.дс
.шп+8
5.7.7. ОПЕРАТОР ЦИКЛА.
.шп-8

.лв
Оператор цикла имеет формат:
   FOR I=X TO Y STEP Z
 FOR - ключевое слово начала оператора.
   I - переменная цикла.
   Х - начальное значение переменной цикла I.
   Y - конечное значение переменной I.
STEP - задает шаг приращения переменной цикла I.
   Z - значение шага приращения переменной I.
.ов
Если в операторе отсутствует слово STEP, тогда шаг приращения считается равным единице. Оператор NEXT закрывает цикл работы. По нему осуществляется приращение к текущему значению переменной I значения шага приращения и присвоение нового значения переменной I. Затем, идет сравнение результата с конечным значением цикла -Y. И если переменная I меньше Y, осуществляется переход к выполнению первого оператора внутри цикла. А если переменная цикла I больше Y, тогда управление переходит к оператору следующему за оператором NEXT.

.дс
.шп+8
5.7.8. ОПЕРАТОР СРАВНЕНИЯ.
.шп-8

Оператор сравнения имеет формат:
  IF <условие> THEN { операторы }
         ELSE { операторы } \.
Оператор цикла выполняется следующим образом. Вначале проверяется условие, записанное между ключевыми словами "IF" и "THEN". Если оно истино, тогда выполняются операторы, стоящие между словами "THEN" и "ELSE" или "THEN" и "\", если оператор "ELSE" отсутствует. В противном случае, если сравнение ложно, тогда выполняются операторы,расположенные между словами "ELSE" и "\" или не выполнется ничего, если оператор "ELSE" отсутствует. 
 Внимание: оператор цикла должен заканчиваться знаком "\". Внутри операторов "THEN","ELSE" и "\" может стоять вложенные операторы условия. Допускается до 8 операторов цикла вложенных друг в друга. Условие стоящее между операторами "IF" и "THEN" может быть сложным. Например:
  IF A=X AND B>2 OR C<3 THEN
Слово "OR" означает "ИЛИ", а слово "AND" - "И". Читается этот оператор так:
 "ЕСЛИ А РАВНО Х И B БОЛЬШЕ 2 ИЛИ С МЕНЬШЕ 3 ТОГДА"...

.дс
.шп+8
5.7.9. ОПЕРАТОР ПЕРЕХОДА.
.шп-8

Оператор перехода предназначен для смены последовательного выполнения программы и перехода в новое место. Он имеет вид:
   GOTO MN,
 где "MN" - метка. По этой команде программа переходит на выполнение оператора следующего за меткой "MN".

.дс
.шп+8
5.7.10. ОПЕРАТОР ВЫЗОВА ПОДПРОГРАММЫ.
.шп-8

Для многократного использования одной и той же последовательности операторов их группируют в подпрограммы. Вход в подпрограмму осуществляется командой: "GOSUB MN", где "МN" - любая метка. Затем последовательно выполняются операторы стоящие после данной метки, до оператора "RETURN". По этому оператору выпонение программы передается на оператор следующий за оператором "GOSUB MN".

.дс
.шп+8
5.7.11. ОПЕРАТОРЫ РАБОТАЮЩИЕ С ДИСКОМ
.шп-8

Для того, чтобы загрузить из программы ранее созданную выходную форму используйте оператор: "LOAD", а за ним укажите имя выходной формы. Имя может быть текстовой константой, взятой в кавычках или текстовой переменной. В любую графу этой выходной формы можно назначить вывод информации из переменной или поля записи. Это делается так:
    G2=A¤;
    G3=PA8
Это означает, что при выводе записей в выходной форме в графе номер 2 будет стоять информация из текстовой переменной А¤, а в графу три будет заносится информация из поля записи, находящегося на первой страници и восьмое по порядку.
Для чтения записей с диска существует оператор "READ FILE". Каждое обращение к этому оператору позволяет считывать последовательно записи с дика начиная с первой и до последней. Для обработки конца записей в системе принят оператор "ON ENDFILE MN", который ставится в программе выше оператора "READ FILE". "MN" - метка. При достижении конца записей на диске осуществляется переход выполнения программы на метку "MN". А указатель записей устанавливается в начало и при следующем чтении записей Вы будете читать опять первую запись. Если оператор "ON ENDFILE" отсутствует, тогда при достижении конца записей программа прекращает свое выполнение и ждет нажатия любой клавиши, чтобы вернуться в редактирование программы.
 В системе существуют процедуры позволяющие выводить уже сгруппированную информацию. Это оператор: "?HAP". По этому оператору, происходит вывод шапки выходной формы. А оператор "?ZAP" - выводит текущую запись по загруженной выходной форме. В одной программе можно последовательно загрузить несолько выходных форм и по ним выдавать информацию на печать, для этого нужно войти в режим "ВЫВОД НА ПЕЧАТЬ" и установить необходимые параметры вывода на печать. Весь вывод на экран будет отображаться на бумагу.
 Для вывода на печать содержимого всего экрана сразу- используйте оперотор "?SCR". При этом нет необходимости устанавливать параметры вывода.
Оператор "END" позволяет закончить выполнение программы в любом месте и вернуться в редактирование программы.
Для запуска новой программы из текущей воспользуйтесь оператром "RUN", а за ним укажите имя программы для выполнения. Формат этого оператора аналогичен оператору "LOAD".

.дс
.шп+8
5.7.12 ПРИМЕР ПРОГРАММЫ
.шп-8

Для примера разберем программу, которая выводит таблицу футбольного перевенства (см. прил.2). Эта программа находится на диске и называется "табл". Она работает с БД с именем "ФУТ90". Для запуска даной программы Вам необходимо взять рабочий диск и переписать на него все файлы, оканчивающиеся на "ФУТ90", а затем в режиме "ЗАПИСАТЬ НОМЕР ДИСКА" (см.п. 6.1) присвоить рабочему диску номер 1. Таким образом БД с именем "ФУТ90" должен был загружен в память ранее. Например в режиме "ПОИСК ЗАПИСЕЙ".
 Рассмотрим текст. Оператор "ТЕХТ1" включает черно-белый экран. "HOME" - очищает экран. Оператор "ON ENDFILE K1" показывает, что при достижении конца чтения данных в операторе "READ FILE", программа переходит на выполнение операторов следующих за меткой "К1".  Оператор "INPUT 'ВВЕДИТЕ ДАТУ'. DD#" выводит на экран текст "ВВЕДИТЕ ДАТУ", а за ним ставит курсор для ввода с клавиатуры даты. После ввода даты она присваивается переменной DD#. Оператор "READ FILE" позволяет прочитать очередную запись из БД. Поле РА1 БД содержит информацию о виде соревнования. Нас, здесь интерисует только "ЧЕМПИОНАТ СССР". Поэтому оператор сравнеиния "IF" проверяет, если поле РА1 не равно "ЧЕМПИОНАТ СССР" тогда оператор "GOTO M1" отсылает выполнение программы назад на  метку "М1", т.е. на чтение новой записи. В случае сранения поля РА1 программа идет ниже на выпонение следующего сравнеия. Поле РА4 содержит в себе дату проведения футбольного матча. Эта дата в записи сравнивается с датой введенной с клавиатуры и если она больше опять осуществляется уход на метку "М1".
Поле РА8 типа "ПЕРЕЧЕНЬ" - наименование команды хозяина стадиона, поле РА9 типа "ПЕРЕЧЕНЬ" - наименоваие команды гостя. Поле РА10 - количество голов забитых хозяином, поле РА11 - голы гостя. Оператры находящиеся между метками "N1" и "N3" осуществляют поиск в массиве SK& наименования команды хозяина и гостя и запоминают найденные индексы. Если наименование какой либо команды не найдено, тогда в массив SK& заносится новое наименование. Переменная AG - индекс массивов для команды гостя, а переменная AX - индекс командыхозяина. "KI" - массив количества игр. "ZB" - массив забитых мячей. "ZP" - массив пропущенных мячей. "NG" - массив ничьих. "WG" - массив выигрышей. "WP" - массив пройгрышей. В операторах, стоящих между метками "N3" и "K1", осуществляется заполнение массивов "KI", "ZB", "ZP", "NG", "WG", "WP" для каждой из команд участниц матча. Затем осуществляется переход на чтение новой записи на метку "M1".
После прочтения всех записей БД программа переходит на метку "K1". Здесь осуществляется подсчет набранных очков каждой командой. "O" - массив очков. "MS" - рабочий массив сортированных индексов.
В операторах, находящихся между меткой "K1" и оператром "HOME", осуществляется последовательная сортировка по массивам "ZB","WG" и "O". Оператор "GOSUB SR" переводит выполненеие программы на метку "SR", где происходит непосредсвенная сортировка массива "MS" и по оператру "RETURN" программа возвращается на следующий оператор за "GOSUB SR".
Последующие операторы позволяют вывести таблицу чемпионата в нужных позициях экрана. Оператор "HTAB" - указывает номер позиции в строке для вывода информации.
В конце программы стоит оператор "?", который выводит сообщение: "для печати на принтере нажмите 'д'". А затем оператор "GET A¤" - он ожидет нажатия только одного символа с клавиатуры. И, если этот символ "D" или "д", тогда по оператору "?SCR" осуществляется вывод на печать содержимого экрана ВКУ, а потом программа заканчивает свою работу по оператору "END".

.цв
.дс
.шп+8
6. РАБОТА С ДИСКОМ
.ов
.шп-8

В этом режиме имеется возможность записать на диск номер и провести реорганизацию БД на дисках. В режиме имеется подменю:

   ЗАПИСАТЬ НОМЕР ДИСКА
   РЕОРГАНИЗАЦИЯ ДИСКА
   ВЫХОД ИЗ СИСТЕМЫ

.дс
.шп+8
6.1. ЗАПИСАТЬ НОМЕР ДИСКА
.шп-8

Войдя в этот режим Вы увидите сообщение:

  ВСТАВЬТЕ РАБОЧИЙ ДИСК
  И УКАЖИТЕ ЕГО НОМЕР 1

Вам предлагается записать номер 1 на диск. Для изменеия номера диска ипользуйте клавиши со стрелками вправо и влево. После установки номера, нажмите клавишу '
', на диск запишется присвоенный ему номер. Для записи номера на другой диск, переставьте диск и повторите режим. Выход из режима - нажатие клавиши '9'.

.дс
.шп+8
6.2. РЕОРГАНИЗАЦИЯ ДИСКА.
.шп-8

Этот режим необходим для улучшения параметров работы БД и освобождению места на диске. При этом осуществляется физическое удаление с диска записей, которые ранее были удаленны или изменены.
ВНИМАНИЕ: обязательно, перед реорганизацией БД сделайте копию диска, т.к., если произойдет ошибка обмена во время реорганизации диска, тогда данные восстановить не удастся. После работы режима записям присваиваются новые номера.
При входе в этот режим Вы видите сообщение:

  ВВЕДИТЕ НОМЕР ДИСКА
  ВСЕГО ДИСКОВ

Вы должны указать номер диска, который подлежит реорганизации и нажать клавишу '
'. Сам процесс реорганизации может быть долгим по времени, это зависит от количества информации в Вашей БД. Для контроля реорганизации  на экран ВКУ  выводится текущий номер записи. Помните, что реорганизован будет не весь диск а только одна БД, с которой работает в данный момент система.

.дс
.шп+8
6.3. ВЫХОД ИЗ СИСТЕМЫ.
.шп-8

Этот режим предназначен для загрузки в память ЭВМ новой сиситемы программирования с ГМД. Для этого достаточно установить курсор меню на данный режим и нажать клавишу '
'.
.сс
.ст СУБД:приложение

Закрыть окно         Список других документов ПЭВМ "Агат"